class Concurso < ActiveRecord::Base
  belongs_to  :centro
  belongs_to :ejecutivo
  has_many_with_attributes  :concurso_ventas
  has_many  :concurso_premios
  has_many  :concurso_premio_marcas
  has_many  :concurso_objetivos
  has_many :evaluaciones
  
  validates_presence_of  :nombre, :fecha_inicio, :fecha_termino
  validates_presence_of :ejecutivo_id, :centro_id, :minimo_cumplimiento_centro,
    :minimo_cumplimiento_tripulacion
  validates_numericality_of :minimo_cumplimiento_centro, :minimo_cumplimiento_tripulacion
  
  VENTAS = 1
  PREMIOS = 2
  OBJETIVOS = 3
  
  def orden_fecha
    if !fecha_inicio.blank? && !fecha_termino.blank?
      return fecha_inicio < fecha_termino
    end
  end

  def validate_on_create
    errors.add('fechas de inicio y t&eacute;rmino') unless orden_fecha
    errors.add('Lista de Objetivos vac&iacute;a') if concurso_objetivos.empty? && tipo == Concurso::OBJETIVOS
  end
    
  def consecutivo
    "%06d" % id + '/' + fecha_inicio.strftime("%Y")

  end
  
  def premios_attributes=(premios_attributes)
    premios_attributes.each do |attributes|
      concurso_premios.build(attributes)
    end
  end
  
  def marcas_attributes=(marcas_attributes)
    marcas_attributes.each do |attributes|
      concurso_premio_marcas.build(attributes)
    end
  end
  
  def objetivos_attributes=(objetivos_attributes)
    logger.debug "Guardando objetivos de concurso"
    objetivos_attributes.each do |attributes|
      concurso_objetivos.build(attributes)
    end
  end
  
  def copas_vendidas_premios(participante)
    copas_vendidas = 0
    
    evaluaciones.each do |e|
      copas_vendidas += e.copas_vendidas_premios(participante)
      
    end
    
    copas_vendidas
  end
  
  def copas_vendidas(participante, marca)
    copas = 0
    
    evaluaciones.each do |e|
      copas += e.copas_vendidas(participante, marca)
    end
    
    copas
  end
  
  def botellas_vendidas(participante, marca)
    botellas = 0
    
    evaluaciones.each do |e|
      botellas += e.botellas_vendidas(participante, marca)
    end
    
    botellas
  end
    
end
